'use strict';

let
    Koa = require('koa'),
    app = new Koa(),
    port = 7878,
    statics = require('koa-static'),
    middleWare = require('./tempMiddleWare'),
    bodyParser = require('koa-bodyparser'),
    controllers = require('./controllers'),
    model = require('./model'),
    session = require('koa-session');

app.keys = ['Are you OK?'];

const CONFIG = {
    key: 'koa.sess', /** (string) cookie key (default is koa.sess) */
    /** (number || 'session') maxAge in ms (default is 1 days) */
    /** 'session' will result in a cookie that expires when session/browser is closed */
    /** Warning: If a session cookie is stolen, this cookie will never expire */
    maxAge: 86400000,
    autoCommit: true, /** (boolean) automatically commit headers (default true) */
    overwrite: true, /** (boolean) can overwrite or not (default true) */
    httpOnly: true, /** (boolean) httpOnly or not (default true) */
    signed: true, /** (boolean) signed or not (default true) */
    rolling: false, /** (boolean) Force a session identifier cookie to be set on every response. The expiration is reset to the original maxAge, resetting the expiration countdown. (default is false) */
    renew: false, /** (boolean) renew session when session is nearly expired, so we can always keep user logged in. (default is false)*/
    secure: false, /** (boolean) secure cookie*/
    sameSite: null, /** (string) session cookie sameSite options (default null, don't set it) */
};

app.use(session(CONFIG, app));

app.use(statics('.'));

app.use(statics(__dirname + '/statics'));

app.use(bodyParser());

app.use(middleWare);

app.use(controllers());


(async () => {
    // await model.sync();
})();

app.listen(port, () => {
    console.log(`http://localhost:${port}`);
})